const express = require('express');
const axios = require('axios'); // 使用 axios 来发送 HTTP 请求，因为它更易于使用
const app = express();
const port = 3000;

// 路由处理函数
app.get('/getImageBase64ByUrl', async (req, res) => {
    try {
        // 假设 URL 是通过查询参数传递的，例如：http://localhost:3000/getImageBase64ByUrl?url=http://example.com/image.jpg
        const url = req.query.url;
        if (!url) {
            return res.status(400).send('Missing URL parameter');
        }

        // 使用 axios 获取图片
        const response = await axios.get(url, {
            responseType: 'arraybuffer', // 将响应类型设置为 arraybuffer，以便我们可以将其转换为 Buffer
        });

        // 将 arraybuffer 转换为 Buffer
        const buffer = Buffer.from(response.data, 'binary');

        // 将 Buffer 转换为 Base64 编码的字符串
        const base64Image = buffer.toString('base64');

        // 返回 Base64 编码的图片
        res.send(base64Image);
    } catch (error) {
        console.error('Error fetching image:', error);
        res.status(500).send('Error fetching image');
    }
});

// 启动服务器
app.listen(port, () => {
    console.log(`Server is running on port ${port}`);
});